package com.project.service;

import com.github.pagehelper.PageInfo;
import com.project.bean.EmployeeBean;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 员工业务接口
 */
public interface IEmployeeService {
    /**
     * 添加员工
     * @param employeeBean 员工对象
     */
    public void addEmployee(EmployeeBean employeeBean);

    /**
     * 员工离职,修改员工状态为离职，
     * 如果该员工正在进行的项目，完成时间改为当前时间
     * @param EmployeeId 员工id
     */
    public void updateState(int EmployeeId);

    /**
     * 根据员工id修改员工信息
     * 先按员工id查询员工信息，在按id修改电话，工资
     * @param EmployeeId 员工id
     * @param phone 电话
     * @param money 工资
     */
    public void updateEmployee(int EmployeeId,String phone,int money);

    /**
     * 按id查询员工详情信息，同时查询该员工参与的项目
     * @param EmployeeId 员工id
     * @return 员工对象
     */
    public EmployeeBean findById(int EmployeeId);

    /**
     * 动态分页查询员工
     * @param pagNum 页码
     * @param employeeName 员工姓名
     * @param specialty 专长
     * @param state 状态
     * @param rules 排序规则
     * @return 分页对象
     */
    public PageInfo<EmployeeBean> cutByItem(int pagNum, String employeeName, String specialty,
                                            String state, String rules);

    /**
     * 动态条件查询，不在指定项目的员工
     * 项目编号为固定条件，员工姓名和专长为动态条件
     * @param projectId
     * @param name
     * @param specialty
     * @return
     */
    public List<EmployeeBean> findNoProject(int projectId,String name,String specialty);

    public EmployeeBean findByIdDate(int emId);
}
